Wait for the device to be connected on the guest (with a 10s timeout)
authorvhanquez@kneesa.uk.xensource.com <vhanquez@kneesa.uk.xensource.com>
Fri, 28 Apr 2006 15:44:00 +0000 (16:44 +0100)
committervhanquez@kneesa.uk.xensource.com <vhanquez@kneesa.uk.xensource.com>
Fri, 28 Apr 2006 15:44:00 +0000 (16:44 +0100)
before detaching it. Fix a race condition that dom0 was tearing down the
block device while the guest was putting it in a Connected state.

Signed-off-by: Vincent Hanquez <vincent@snarc.org>
tools/xm-test/tests/block-destroy/06_block-destroy_check_list_pos.py

index 01e81122b25f683a1816b1f9d9c7d71797f8df39..25bba2183cc0aeef1b1faf58d628ea6b17e8b08c 100644 (file)
@@ -26,6 +26,12 @@ def checkXmLongList(domain):
     else:
         return False
 
+def checkBlockState(domain):
+    s, o = traceCommand("xm block-list %s | awk '{print $4}' |tail -n 1" % domain.getName())
+    if s != 0:
+        FAIL("block-list failed")
+    return int(o)
+
 if ENABLE_HVM_SUPPORT:
     SKIP("Block-detach not supported for HVM domains")
 
@@ -46,7 +52,11 @@ if not checkBlockList(domain):
 if not checkXmLongList(domain):
     FAIL("xm long list does not show that hda1 was attached")
 
-time.sleep(2)
+for i in range(1, 10):
+    time.sleep(1)
+    state = checkBlockState(domain)
+    if state == 4:
+        break
 
 s, o = traceCommand("xm block-detach %s hda1" % domain.getName())
 if s != 0: